Search


📜 [專欄新文章] 論 dapp: Decentralized Application<...

  • Share this:


📜 [專欄新文章] 論 dapp: Decentralized Application
✍️ Hsieh Yung-chen
📥 歡迎投稿: https://medium.com/taipei-ethereum-meetup #徵技術分享文 #使用心得 #教學文 #medium
論 dapp: Decentralized Application

本來想寫一些 dapp 應用的文章,但發現光是講 dapp 就要一個篇幅,所以改了文章標題,這章只講 dapp。

我自己對 dapp 的認知如下:dapp 上的資料大部分是從自己的電腦抓出來的,從哪裡抓資料,從區塊鏈那邊拿。只要你是某區塊鏈系統的其中一個完整節點,你的節點會有一整份的區塊鏈資料,而 dapp 就去這裡拿資料。若區塊鏈在同步的時候就都有遵守區塊鏈協定規則。則可保證 dapp 上的資訊都是正確的,沒有被其他人篡改。以這個定義來說的話,你會發現 dapp 的 host 都是本機端。附圖為一個簡單的 dapp 範例。
dapp: when are we there
上圖例子裡,這個 dapp 的 host 為 local host,從區塊鏈上抓了區塊鏈高度的訊息。
dapp: token deploymentdapp: token deployment
另一個 dapp 為 token deployment,這是一個智能合約,可以幫忙產生簡單的 erc20 token 合約。他會記錄透過這個合約所產生的 token,並可以抓到跟你帳戶相關的 token 資訊,這些資訊都在區塊鏈裡,他只是把他抓出來,從新顯示而已。而當你要跟這個 dapp 互動,比如說我要產生 888 token,我會需要送一筆交易到區塊鏈上來更新這個合約的狀態,dapp 可以幫我準備好交易,我不需要自己再去找到智能合約的 abi,自己填上參數。但最後仍要自己簽名才行,自己私鑰自己管。

以上是最去中心化的 dapp 範例,但是當然不可能要求每個人都是全節點。全節點的負擔不再多做說明,依不同信任程度,使用者應可自行選擇節點種類。抓區塊鏈資料是透過 web3,而像是 etherscan 等公司都有提供 web3 的 server,可以直接使用,就不用自己架節點 (但透過 web3 並不能幫你管理你的私鑰,私鑰也不適合讓其他人來管理) 。你可以看到,像是 myetherwallet 預設便是利用可信任的幾個 web3 server,來幫忙抓區塊鏈上資訊。myetherwallet 另外實作了很多不同的私鑰存取方式。myetherwallet 提供了網站讓大家方便存取,卻也相對危險,如果可以請下載下來跑在本機端。

除了 myetherwallet 之外。metamask 提供一個 chrome extension 來幫助使用者管理私鑰,以及簽章。當然,一個好的應用不可能所有資訊都來自封閉的區塊鏈,或多或少都會有區塊鏈以外的資訊要抓,會使用到外部的 api。有這麼多的資訊擷取方式,只有來自區塊鏈上的資訊是有受過驗證的 (前提是 web3 可信)。且只是資訊是正確的,不代表 dapp 不會亂填交易資訊,所以在簽章的時候,記得要做最後確認。

總結:利用 web3 ,可以接到本機端的全節點。或是利用可信任機構所提供的 web3 server 加上私鑰簽章程式。使得整個網站可以跑在 local 端。不管是在 local 或是其他 server 上的 dapp,都要在最後簽章的時候確定交易內容。

論 dapp: Decentralized Application was originally published in Taipei Ethereum Meetup on Medium, where people are continuing the conversation by highlighting and responding to this story.

👏 歡迎轉載分享鼓掌


Tags:

About author
not provided
We have regular meeting twice per month on discussing blockchain technology, smart contracts and DApps development! We would love to have you join us!
View all posts